﻿using ThreadSafe.JSense.VSIX;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System;
using EnvDTE;

namespace ThreadSafe.JSense.VSIX_UnitTests
{


   [TestClass()]
   public class JSenseCommandTest
   {


      private TestContext testContextInstance;

      public TestContext TestContext
      {
         get
         {
            return testContextInstance;
         }
         set
         {
            testContextInstance = value;
         }
      }

      #region Additional test attributes
      // 
      //You can use the following additional attributes as you write your tests:
      //
      //Use ClassInitialize to run code before running the first test in the class
      //[ClassInitialize()]
      //public static void MyClassInitialize(TestContext testContext)
      //{
      //}
      //
      //Use ClassCleanup to run code after all tests in a class have run
      //[ClassCleanup()]
      //public static void MyClassCleanup()
      //{
      //}
      //
      //Use TestInitialize to run code before running each test
      //[TestInitialize()]
      //public void MyTestInitialize()
      //{
      //}
      //
      //Use TestCleanup to run code after each test has run
      //[TestCleanup()]
      //public void MyTestCleanup()
      //{
      //}
      //
      #endregion


      [TestMethod()]
      public void JSenseCommandConstructorTest()
      {
         object application = null; // TODO: Initialize to an appropriate value
         JSenseCommand target = new JSenseCommand(application);
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void AddDefaultExclusionsTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         target.AddDefaultExclusions();
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void AddExclusionsTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         target.AddExclusions();
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void AddMetaBaseHeaderTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         target.AddMetaBaseHeader();
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void ClearMetaBaseTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         target.ClearMetaBase();
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void CreateMetaBaseTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         target.CreateMetaBase();
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void HandleErrorTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         Exception e = null; // TODO: Initialize to an appropriate value
         target.HandleError(e);
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void InitializeMetaBaseTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         ProjectItem metaBase = null; // TODO: Initialize to an appropriate value
         target.InitializeMetaBase(metaBase);
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void IsExcludedTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         string path = string.Empty; // TODO: Initialize to an appropriate value
         bool expected = false; // TODO: Initialize to an appropriate value
         bool actual;
         actual = target.IsExcluded(path);
         Assert.AreEqual(expected, actual);
      }

      [TestMethod()]
      public void JSenseTest()
      {
         object application = null; // TODO: Initialize to an appropriate value
         JSenseCommand target = new JSenseCommand(application); // TODO: Initialize to an appropriate value
         bool expected = false; // TODO: Initialize to an appropriate value
         bool actual;
         actual = target.JSense();
         Assert.AreEqual(expected, actual);
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void LoadExclusionsTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         target.LoadExclusions();
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void ProcessProjectItemTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         ProjectItem projecttItem = null; // TODO: Initialize to an appropriate value
         string path = string.Empty; // TODO: Initialize to an appropriate value
         target.ProcessProjectItem(projecttItem, path);
      }

      [TestMethod()]
      [DeploymentItem("ThreadSafe.JSense.VSIX.dll")]
      public void TagMetaBaseTest()
      {
         PrivateObject param0 = null; // TODO: Initialize to an appropriate value
         JSenseCommand_Accessor target = new JSenseCommand_Accessor(param0); // TODO: Initialize to an appropriate value
         string path = string.Empty; // TODO: Initialize to an appropriate value
         target.TagMetaBase(path);
      }
   }
}
